/*
* @author : TF-BJ-C064
* @creation : 2014-7-24 下午12:06:36
* @description : 
*
*/

package com.tool;

import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 正在表达式工具
 * <p>Title: RegexTool</p>
 * <p>Description: </p>
 * <p>Company: www.teleframe.cn</p> 
 * @author	lijian
 * @date	2014-7-24
 */
public class RegexTool {

	
	public static void main(String []argv) throws ParseException{
		System.out.println( checkDateTime("2014-01-08") );
		System.out.println( checkDateTime("20140708") );
		
		SimpleDateFormat formatDate = new SimpleDateFormat("yyyy-MM-dd");
		String datetime = "2014-01-08";
		Date timelong = formatDate.parse(datetime);
		System.out.println( "timelong="+ timelong.toString());
	}
	
	/**
	 * 日期格式 (yyyy-MM-dd) 正则表达式模式
	 * <p>Title: checkDateTime</p>
	 * <p>Description: </p>
	 * @param inputDateTime
	 * 				yyyy-MM-dd | yyyy年MM月dd | yyyy/MM/dd
	 * 				1900-01-01  -- 2099-12-31 
	 * @return
	 */
	public static boolean checkDateTime(String inputDateTime){
		
		// 日期格式 (dd/mm/yyyy) 正则表达式模式
		// (0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)
		
		Pattern p = Pattern.compile("((19|20)\\d\\d)[年|\\-|/](0?[1-9]|1[012])[月|\\-|/](0?[1-9]|[12][0-9]|3[01])");
		Matcher matcher = p.matcher(inputDateTime);
		return matcher.matches();
	}
	
	/**
	 * 日期格式 (yyyy-MM) 正则表达式模式
	 * <p>Title: checkDateTime</p>
	 * <p>Description: </p>
	 * @param inputDateTime
	 * 				yyyy-MM | yyyy年MM | yyyy/MM
	 * 				1900-01  -- 2099-12 
	 * @return
	 */
	public static boolean checkMonth(String inputDateTime){
		Pattern p = Pattern.compile("((19|20)\\d\\d)[年|\\-|/](0?[1-9]|1[012])");
		Matcher matcher = p.matcher(inputDateTime);
		return matcher.matches();
	}
	
	/**
	 * 日期格式 (yyyy) 正则表达式模式
	 * <p>Title: checkDateTime</p>
	 * <p>Description: </p>
	 * @param inputDateTime
	 * 				yyyy
	 * 				1900  -- 2099 
	 * @return
	 */
	public static boolean checkYear(String inputDateTime){
		Pattern p = Pattern.compile("((19|20)\\d\\d)");
		Matcher matcher = p.matcher(inputDateTime);
		return matcher.matches();
	}
	
}
